home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / docs / misc / amigapl.9904.lzh / amigapl.9904 / text1144.txt < prev    next >
Encoding:
Text File  |  1999-05-03  |  1.4 KB  |  46 lines

  1. On 28-Kwi-99, Tomasz Rakowski wrote:
  2.  
  3. > Wszystko gra, jesli title, item1, item2 i item3 sa (const char*)
  4. > albo wpisuje sie je do struktury jawnie jako stale ciagi znakow,
  5. > np. "Tytul" i kompiluje.
  6.  
  7. > Pytanie: Jak stworzyc menu w ktorym ow ciag znakow bedzie (char*),
  8. > tzn. bede mial mozliwosc uzycia zwyklego wskaznika na string?
  9.  
  10. Zwyczajnie wstawiasz wska¼nik do struktury:
  11.  
  12. char *jaki¶_string;
  13.  
  14. mymenu[2].nm_Label = jaki¶_string;
  15.  
  16. > 2) Pobawmy sie IDCMP. Mamy wskazniki na 3 okna:
  17. > struct Window  *win1, *win2, *win3;
  18. > W programie otwieramy np. okno 1. i 3., a win2 pozostaje NULL.
  19. > Pytanie: Czy mozna uzyc konstrukcji...
  20. > signal = Wait( win1->....->SigBit |
  21. >               win2->....->SigBit |
  22. >               win3->....->SigBit);
  23. > ... bez obawy o zwiechy?
  24.  
  25. Nie. Zwróæ uwagê, ¿e odwo³ujesz siê do wska¼nika zerowego. To jest
  26. niedozwolone i wywo³a zwiechy. A poza tym ten kod jest b³êdny, bo
  27. OR-ujesz ze sob± numery bitów zamiast masek. Powinno byæ tak:
  28.  
  29. signal = Wait ((1 << win1->...->mp_SigBit) | ... i tak dalej
  30.  
  31. A je¿eli chcesz uwzglêdniæ mo¿liwo¶æ, ¿e win2 jest NULL u¿yj wyra¿enia
  32. warunkowego
  33.  
  34. ... | (win2 ? (1 << win2->UserPort->mp_SigBit) : 0) | ...
  35.  
  36. Je¿eli win2 = NULL, czyli okna nie ma, do maski sygna³ów OR-ujê zero,
  37. czyli po prostu nic siê nie zmienia.
  38.  
  39. -- 
  40. Grzegorz Kraszewski (Krashan/BlaBla) - krashan@amiga.org.pl
  41. Druga Strona BlaBla  - http://amiga.org.pl/~krashan
  42.  
  43.  
  44.  
  45.  
  46.